查看原文
其他

以过来人经验分享学习与工作

杨源鑫 嵌入式云IOT技术圈 2021-01-31

近来公众号增加了不少粉丝,我决定把我之前写的一些经验分享给新来的朋友,以下纯属个人的一些想法,如说得有不恰当的地方,我非常乐意接受各位大佬的批评指正,本人也会不断学习,谢谢各位大佬的支持!

一、关于个人

我大学读的是电子技术,工作从事的是嵌入式软件研发相关的岗位,从2015年12月至今。在这段时间里,主要接触的是跟单片机,Linux,Android相关的电子产品开发,后来有分享的想法,所以建立了下面这个QQ群,这个群给予了我不断前进的信心,也结识了很多志同道合的朋友。

一来大家有个共同交流的平台,二来一些技术资源也可以做成专题相互共享,以便在工作上可以参考学习,快速达到自己想要的结果。

刚开始会有很多人问我一些技术方面的问题,我都能帮他们顺利的解决对应的问题,得到了大家的认可和好评。本人也从来不喜欢套路任何人,相反我更喜欢开源分享,开源分享才是我想要做的目标,这也就是为什么我创建的群能够吸引这么多人来加的原因,其二也是有不少经验和资料会在群里分享,还有就是我对该群的运营十分成功,至今都是非常活跃的,不像别的群,几个月后,基本就死了。

不管是在工作中还是日常生活,我对技术的东西都属于一个非常狂热的追随者,我喜欢嵌入式这个行业,因为它与硬件的贴合,可以实现很多有趣的电子产品,还有一个原因是大学期间老师对我的栽培,在大学期间,我们经常在工作室做项目,后面也参加了不少比赛并拿到了相应的奖项,打铁还需自身硬啊!

1、学生时代

我见过不少学生请教我的一些问题,都是问,嵌入式怎么样?学习起来难不难?工资高不高等一系列问题?

相信,作为学生时代的我也经常会去问师兄或者已经在社会上从事技术工作的朋友这些问题。很多人都说,嵌入式炒的概念已经过时了,东西趋向于成熟,工资又不高,刚毕业4、5k,工作一两年也就是8-9k,厉害点的就12k的样子,看看人家搞前后端的同学,搞人工智能的,做游戏的等等,他们一个月都能挣很多钱,20k,30k,50k一个月比比皆是。于是争先恐后的跑去各大培训机构培训,很多培训结构打着包就业的幌子,于是一大堆同学被忽悠过去了,都很努力,但就是学不会,到最后工作很难找,但有一部分同样学习那么几个月,也很努力,最后找到的工作也很满意,工资也高。想想当时嵌入式其实也是这样子的,很多人跑去培训。

很多人没有想过本质的原因,为什么同样培训,学习同样的知识,大家都一样在努力,可效果为啥就不一样呢?有些人解决问题就很快,可以非常顺利的完成很多项目获得收益,工资也很高。有些人培训完依旧什么都不会,只是为了工资高而去盲目跟风学习。有些人,在学校成绩就很好,程序设计考试,甚至是专业成绩就很好,为啥找工作工资就那么低呢?其实,区别不是谁聪不聪明的问题,而是,人家了解需求,人家知道学习是为了解决某个问题,这才是最关键的,如果连学这个能解决什么问题,能做什么事情都不知道,那么学再多有什么用呢?

学生时代,我们需要去学习某个知识点的原理,了解它能解决什么问题,并能够实践操作,理论是一定要学的,因为它是前人不断踩坑的经历,能给你起到一种拨云见日的作用;当下网络资源这么丰富,不要懒,多去搜索,看看别人都做了一些什么东西,模仿这些东西,把它实现出来,当完全熟练掌握后,要大胆提出质疑并改进,然后和同专业的人讨论,看看别人的看法,一起研究,有一定经验后,自己上网搜索做一些小项目,还有非常重要的一点,摸清楚自己未来的定位,未来想要从事什么样的工作,有什么样的规划成长计划,这才是大学生时代应当做的事情。

2、工程师

大学实习或者毕业,不少人开始找到从事技术岗的工作,也从学生时代进阶为工程师时代。我在群里见过不少这样的人,一上来不管三七二十一,就问:

1、谁有XXX代码,给我一份?求求你们,我真的不会写。

2、我这段代码出了啥问题,怎么一直编译不过?我好无奈啊,急啊。。。各种牢骚的求大神。

3、我们公司在做一款产品,是我负责的,但是我不会做,能不能告诉我怎么做?带带我,我真的不会?做出来给你钱。

4、我的代码写着写着电脑关机了,怎么恢复?这很重要啊,急啊,怎么解决啊。。。。

。。。。等等。

能问出这样的问题,不好意思,工程师这个头衔真的不适合你,工程师是指具有从事工程系统操作、设计、管理评估能力的人员。首先不会写,你连设计的本领都没有,接下来,出了问题,基本的调试手段都不会,请问你真的知道怎么调试?别再以我是小白为借口,这种话应该是学生才该说的,不是作为一个工程师该说出口的,你应该降一级。你负责的产品,你都不会做?你为什么不评估你自己的能力以及设计系统的能力?为什么不和上级好好沟通?代码写着电脑就关机了,恢复不了,这又能怨谁呢?都没做好版本管理和备份。等等。。。

还有不少人,是活在自己的世界里,来了公司,领导叫了就干活,不叫可能就发呆,睡觉,玩游戏等等过着混日子的生活,干的时候自己一个人在那干,也不和别人讨论;最后干完发现自己一直在做无用功,领导批评他还有理了,说一直在努力干。你说,你在干啥呢?我要你来就是来帮我做事的,结果你半天没把东西给我搞出来,还做了一堆无用功?

其实,领导才不管你的过程,你很努力干活不是你说努力就努力的,领导最终看的是结果,结果很容易评判你的过程,结果就是对事不对人,不对人并不是完全否定你个人,而是否定你对这件事的态度和行为。公司都是需要有产值的,你在一定的时间内没有贡献,被炒鱿鱼了能怪谁,怪自己呗,公司最需要的,是能解决问题,能创造价值的人。

一个工程师,应该具备的能力就是,在做一件事情之前要先评估项目的各种环境,只有环境成功了,接下来要实施项目的时候,还要学会设计框架,框架需要设计的具有健壮性,可拓展性,易维护性。再下来才是各个模块的具体实现。设计完成以后还需要做各种功能性测试,再下来才是发布版本等操作。很多人这时候就会说了,设计框架,这不是高级工程师或者项目经理才会做的事情吗?我们工程师只要把模块写了不就可以了吗?能问这样的问题,只能说你可能在大公司,很多东西趋于成熟化,一般来说核心的框架都不是你去设计的,而是由更核心的负责人去做的,你只要去填他的东西。但这样难道就意味着你不用去学习了吗?人都是一个不断成长的过程,换个环境,到了小公司,你就是项目经理,你除了干研发,还得干其它的杂活呢。

3、学习--工作--生存三模式

一、作为一个IT行业的职业者,我们需要面临的三种模式,学习,工作和生存,为什么这么说?

1、学习让我们能更好的工作,而工作能够带来薪酬,能够让自己生存下来,这三种模式是环环相扣的,谁也离不开谁。我们最应该学习什么东西?工作怎么样才能做好,薪酬怎么能变得更高,才能生存的更好。

(1)多关注最新的科技动态,但前提是平时的学习依然是以打基础为主,学有余力,再拓展其它的学习方向,人都不可能一口吃成一个胖子,要一口一口,符合自然规律来。如果你茫无目的,不知道学什么的情况下,那就先学习能够解决你当前遇到问题的方法,然后积累下来,跟写博客一样,其实就是日报,自己给自己写日报,记录一天做过的事情。

(2)学习怎么与人沟通,怎么能够高效的和别人工作,解决工作上的问题,说说高效沟通,举个例子:我的机器,屏突然不亮了,不知道为什么不亮了。如何解决?

其实你应该这么沟通:我的机器,用的是单片机或是Linux平台,我在屏不亮之前做了XX操作,然后突然就不亮了。你这样一说,问题点就有前后联系,这样就很快的,精准的定位问题,也能够快速的寻找解决方案,事实上,我曾经从事FAE这样的职位,就是帮客户找问题,然后解决问题。

(3)学习不要说话得罪人,我曾经见到我们群里有这样的人,一上来一言不合就得罪人,关键是他得罪人了还不知道自己得罪人了,一直争辩,后面我就把他给T了,其实这种人,一般是三观不合的,或者他本身就存在问题。

(4)学习自我管理,把现有的事情做好的维护起来很关键,能少出问题就不要出问题,很多时候在公司把事情搞定就没事做了,真的就没事做了吗?越是没事做的时候,越是能够体现出你是否能积极主动的去细心的做好每一件事,哪怕是非常简单的事情也是一样的,没事做就找点事做,哪怕去学习和了解下别的部门的一些工作流程也行。

(5)如何生存的更好,那取决你的洞察事物的眼界是如何的,其实工作大部分时间都是在处理业务逻辑,而真正有意义的事情,就是如何去从头参与一个工作项目的实施,因为整个周期都是可控的,做出来了,才是真正的提高。

(6)工作上,技术永远只是工具而已,不要去比较语言的优劣性,CPU功能的强大等等,多去考虑产品的应用场景以及市场需求,面向客户,学习到的东西更多!

(7)安于现状是不可取的,危机意识得常有。

4、谈谈找工作的话题

关于找工作这个问题,很多学生在简历上喜欢写自己大学的学习多么的优秀,成绩多么的好,参加过什么社团,当了什么部长之类的,有的没的都喜欢往简历上写,最后发现,一投递简历却没有回应,于是就在抱怨自己的大学多么的辣鸡,专业课老师多么的菜等等。

其实他们并没有思考自己找不到工作的本质原因,是能力不行吗?是学历不够吗?(学历确实是个门槛,可以淘汰很多人,但也不一定),是才华不出众吗?等等。。。 事实上,你要从事的是技术岗位,是要去解决专业领域的技术问题的,HR找人才的时候,针对点就是你写的简历是否和他们的岗位职责匹配。比如单片机工程师的工作,很可能是下面的模板,从前程无忧上随便找两个看看:

职位信息描述得很详细,关键点1-5,这是岗位的基本技术技能,笔试可以看出你掌握的情况,面试也可以问出一些情况,6-8点,这是需要面试沟通,如果沟通没有问题,技能也达标,那么这个人很可能会被录用,但1-8点是需要长期观察的,这就是为什么公司录用你还需要有3-6个月的试用期的原因,从试用期间可以考核你对这个岗位是否能够胜任,考核你个人的兴趣爱好,道德等指标,最后综合评估是否值得转正。

话又说回来,文章刚开始,作为一个去面试技术岗位的人,写"自己大学的学习多么的优秀,成绩多么的好,参加过什么社团,当了什么部长之类的",这些有用吗?不能说完全没有用,但大部分的HR连看都不会看,因为那毕竟只是你在学校的经历,这不是职位核心技能的体现。

那怎么写出来的简历才能打动某公司HR或者正在评估你简历的技术主管呢?请看如下模板,这也是我之前经常用的一个模板。

姓名:xxx 年龄:xxx 毕业院校:xxx大学 学历:本科/大专
手机:xxx 地址:xxx 期望薪资:14k

一、掌握技能:
1、熟练应用C/C++/Java语言,掌握常用的数据结构。
2、熟悉Linux与Android应用/驱动开发
3、熟悉串口/I2C/SPI/USB等协议的应用。
。。。

二、项目经验
项目一、基于xxx平台(MTK,NXP,RK等方案)平板电脑开发
我在该项目中主要负责:
1、Android Rom定制:
(1)根据产品的功能需求进行Recovery定制、开机动画定制、开机加密程序编写、OTA系统更新、修改启动脚本init.rc以及定制init.c程序、机器语言版本信息、定制AndroidUI、导航栏(根据最终的实现增删改)、预制相应的APK进入Android OS、Android权限修改(包括Selinux、Android root功能定制、PIE检测机制、init.rc中某些启动项权限)。
2、驱动移植与修改:
针对产品的硬件对各个驱动进行移植、编写和定制,主要包括:
(1)按键驱动、wifi驱动移植、TP(包括奕力、晶门、汇顶、敦泰方案)、电源电压曲线修改、Audio驱动移植与修改、LCD驱动修改等。
3、生产测试程序开发
针对产品编写生成测试整机测试程序,主要包括:
按键测试、Gsensor测试、电池电量、电池状态测试、内存测试、EMMC测试、SD卡测试、wifi功能测试(获取信号强度最强的ssid并显示、mac地址显示、wifi连接热点测试)、LCD RGB显示测试、Camear显示测试、Audio功能测试(喇叭耳机的播放测试、麦克风录音功能)。
项目二、xxxxxxxxxxxxxxxx
xxxxxxxxxxxx
。。。。。
三、在校情况:
1、通过计算机xxx等级考试
2、通过英语4/6级考试
3、参加xxx院级/省级/国家级竞赛获奖
。。。等等

这么一写,条理清晰,有基本信息,掌握技能,项目经验,在校情况,最能让HR和技术主管打动就是项目经验,为什么这么说,我们看看:

做了什么方案的项目,具体在这个项目中做了哪些工作,负责哪些事情都很有条理,描述也清晰,这样的简历就很透明,能让公司的HR和技术主管清晰的了解你目前掌握的技能以及你的工作能力,而在校情况,就是加分点了,当然是挑好的写,这样的简历一般不会一直石沉大海,面试机会马上就来了,但请注意,你的简历一定要真实,技术人员不要弄虚作假,没有用的。

一般公司都会先进行笔试,如果基础没问题,那么通过笔记就没有问题,接下来会进入面试应聘的阶段。

面试的时候,这时候主导权是在你这里,而不是HR和技术主管了,他们会问你一些问题,但你可以将主导权控制在你的手中,结合公司的这个职位去阐述,因为你有权利去跟他们说你做过这东西,是怎么跟现在这个职位联系起来的,接下来能解决哪些问题,哪些问题经常做,会很有经验。如果有幸面试成功再说下接下来自己的工作计划,这时候你可以结合人才市场,职位的平均薪资去谈价钱,要多少钱,值多少钱,你可以跟他们谈,而不是他们给你定多少钱就多少钱,你自己连谈价钱的资格都没有;很多时候,就是因为主导权在HR和技术主管那里,把薪水压低,面试者才会抱怨待遇不好等各种原因,而如果你有本领,你适合,你就有谈价钱的资本,要大胆的去推拉,去表现,要把主导权掌握在自己的手中。

由于接下来的工作是研发兼管理打杂的性质,所以近期读了一本书<<有效管理的十八项技能>>,是一个企业非常有名的管理者李泽尧老师写的,其中有一段写得非常好。

行情工资 != 业绩工资

行情工资:你有学历,有资历,做过什么,你值1万元,我认为合理,值这个价钱,这叫行情工资。

业绩工资:我要不要付这么多钱给你,要看你的实际行动,你过程做了没有,结果有没有完成,要有工作的过程和结果,才叫业绩工资,才是你真正的工作完成的情况,然后才能拿到钱,拿到收入。

所以说,应聘工作,简历上 要突出你的学历,资历,做过什么等等,这样才有资格谈判,工作一旦应聘上了,你往后的薪资增幅往往就跟你的绩效息息相关,绩效越高,业绩工资也会越多,这就是为什么工资有基本工资+绩效工作等等。

今天就分享到这里,谢谢各位!

我的知乎:杨源鑫

我的CSDN:https://blog.csdn.net/morixinguan

往期精彩


侃侃单片机的裸奔程序的框架

开源STM32产品:无线点菜宝使用评测

专为MCU项目开发提速的代码框架BabyOS

开源按键组件MultiButton支持菜单操作(事件驱动型)

若觉得本次分享的文章对您有帮助,随手点[在看]并转发分享,也是对我的支持。

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存